package com.ithiema.reggie.common;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.sun.media.jfxmedia.logging.Logger;
import javafx.scene.paint.Material;
import jdk.nashorn.internal.ir.RuntimeNode;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * 自定义元数据对象处理器
 *
 * @author wangxiao
 * @since 2022/11/2 10:42
 */
@Component
@Slf4j
public class MyMetaObjecthandler implements MetaObjectHandler {

        /*
        插入操作 自动填充
         */
    @Override
    public void insertFill(MetaObject metaObject) {

//赋值 第一参数时字段 第二个参数是要赋值的内容
        Long currentUserId = BaseContext.getCurrentUserId();
        LocalDateTime now = LocalDateTime.now();
        log.info("公共字段自动填充[insert]...");
        log.info(metaObject.toString());
//        创建时间
        metaObject.setValue("createTime",now);
//        修改时间
        metaObject.setValue("updateTime",now);
//        创建人ID
        metaObject.setValue("createUser",currentUserId);
//        修改人id
        metaObject.setValue("updateUser",currentUserId);
    }
/*
更次你操作 自动填充
 */
    @Override
    public void updateFill(MetaObject metaObject) {
    log.info("公共字段自动填充[update]....");
    log.info(metaObject.toString());
//    修改时间
    metaObject.setValue("updateTime",LocalDateTime.now());
//    修改人
    metaObject.setValue("updateUser",BaseContext.getCurrentUserId());
    }
}
